package br.com.moto.web;

import br.com.moto.ejb.PessoaSessionBean;
import br.com.moto.entity.Pessoa;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import javax.ejb.EJB;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import javax.faces.context.FacesContext; 

@ManagedBean(name = "pessoaController")
@SessionScoped
public class PessoaMBean {
    
    @EJB
    private PessoaSessionBean pessoaSessionBean;
    private Pessoa pessoa = new Pessoa();
    private Pessoa pessoaSelecionado;
    private String nome;
    private List<Pessoa> listaPessoa;  
    
    public PessoaMBean() {
    }
    
    public List listPessoaByNome(){ 
        
        this.listaPessoa = pessoaSessionBean.getPessoaByNome(nome);
        
        return listaPessoa;
  
    }       
    
    public List pessoaByNome(String nome) { 
        
        List<String> lista = new ArrayList<String>();
        List<Pessoa> listaPessoa = pessoaSessionBean.getPessoaByNome(nome);
        for (Iterator<Pessoa> it = listaPessoa.iterator(); it.hasNext();) {
            Pessoa p = (Pessoa) it.next();
            lista.add(p.getNome() + " " + p.getSobrenome());
        }        
        return lista;
    }     
    
    public List getListaPessoas() { 
        return pessoaSessionBean.retrieve();  
    }     
    
    public void adicionarPessoa() {
        System.out.println("##adicionarPessoa");
        
        pessoaSessionBean.create(pessoa);        
        FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Nova pessoa adicionado com sucesso!"));
    }
    
    public void novoPessoa() {
        System.out.println("##novoPessoa");
        pessoa = new Pessoa();
    }     
    
    public void carregarPessoa() {
        System.out.println("##carregarPessoa" + pessoaSelecionado.getId());        
        pessoa = pessoaSessionBean.getPessoa(pessoaSelecionado);
    }    
    
    public void excluirPessoa() {
            pessoaSessionBean.delete(pessoaSelecionado);
            FacesContext.getCurrentInstance().addMessage(null, new FacesMessage("Excluído com sucesso!"));
    }    

    public Pessoa getPessoa() {
        return pessoa;
    }

    public void setPessoa(Pessoa pessoa) {
        this.pessoa = pessoa;
    }

    public Pessoa getPessoaSelecionado() {
        return pessoaSelecionado;
    }

    public void setPessoaSelecionado(Pessoa pessoaSelecionado) {
        this.pessoaSelecionado = pessoaSelecionado;
    }

    public String getNome() {
        return nome;
    }

    public void setNome(String nome) {
        this.nome = nome;
    }

    public List<Pessoa> getListaPessoa() {
        return listaPessoa;
    }

    public void setListaPessoa(List<Pessoa> listaPessoa) {
        this.listaPessoa = listaPessoa;
    }
    
    
    
    
}